### Project 1 the application of L298N motor driver board For the instruction for L298N driver board please refer to (L298N dual-H bridge DC motor driver board manual). Some of you still don't know how to control dual DC motor. Here are the details. ![](media/wps1.png) For the VMS driver part, power supply can be external power source, generally about 9V. For the logic part, power supply can be from the board internally; with terminals in suspense state, they can also be connected to +5V to +7V power. The three pins between each terminal are used to control the dual DC motor. EA and EB are connected to Arduino PWM interface for motor speed regulation. I1, I2, I3, I2 interface, connected to Arduino digital interfaces, are used for controlling the motor going forward, backward, steering and braking. Up until now, the preparatory work is completed. You can begin writing the program now. Here, the program for your reference includes car going straight, backward, turning left, turning right, and braking. ![](media/wps2.png) **Program** Code 1 ```c int pinI1=5;// define pin I1 int pinI2=6;// define pin I2 int speedpin=3;// define pin EA(PWM speed regulation) int pinI3=10;// define pin I3 int pinI4=11;// define pin I4 int speedpin1=9;// define pin EB(PWM speed regulation) void setup() { pinMode(pinI1,OUTPUT); pinMode(pinI2,OUTPUT); pinMode(speedpin,OUTPUT); pinMode(pinI3,OUTPUT); pinMode(pinI4,OUTPUT); pinMode(speedpin1,OUTPUT); } void loop() { // going straight analogWrite(speedpin,100);// input analog value to set the speed analogWrite(speedpin1,100); digitalWrite(pinI4,LOW);// make the DC motor turn(right) anti-clockwise digitalWrite(pinI3,HIGH); digitalWrite(pinI1,LOW);// make the DC motor turn(left) clockwise digitalWrite(pinI2,HIGH); delay(2000); // going backwards analogWrite(speedpin,100);// input analog value to set the speed analogWrite(speedpin1,100); digitalWrite(pinI4,HIGH);// make the DC motor turn(right) clockwise digitalWrite(pinI3,LOW); digitalWrite(pinI1,HIGH);//make the DC motor turn(left) anti-clockwise digitalWrite(pinI2,LOW); delay(2000); // turning left analogWrite(speedpin,60);// input analog value to set the speed analogWrite(speedpin1,60); digitalWrite(pinI4,LOW);// make the DC motor turn(right) anti-clockwise digitalWrite(pinI3,HIGH); digitalWrite(pinI1,HIGH);//make the DC motor turn(left) anti-clockwise digitalWrite(pinI2,LOW); delay(2000); // turning right analogWrite(speedpin,60);//input analog value to set the speed analogWrite(speedpin1,60); digitalWrite(pinI4,HIGH);//make the DC motor turn(right) clockwise digitalWrite(pinI3,LOW); digitalWrite(pinI1,LOW);//make the DC motor turn(left) clockwise digitalWrite(pinI2,HIGH); delay(2000); // braking digitalWrite(pinI4,HIGH);// make the DC motor brake(right) digitalWrite(pinI3,HIGH); digitalWrite(pinI1,HIGH);//make the DC motor brake(left) digitalWrite(pinI2,HIGH); delay(2000); } ``` Note: in the program, there can be other ways to make the motor turning left or right. You can try it out yourself.